/**
 * 版权所有 2009-2012山东新北洋信息技术股份有限公司
 * 保留所有权利。
 */
package com.linyaonan.leetcode.easy._412;

import java.util.ArrayList;
import java.util.List;

/**
 *
 * 写一个程序，输出从 1 到 n 数字的字符串表示。
 *
 * 1. 如果 n 是3的倍数，输出“Fizz”；
 *
 * 2. 如果 n 是5的倍数，输出“Buzz”；
 *
 * 3.如果 n 同时是3和5的倍数，输出 “FizzBuzz”。
 *
 * 示例：
 *
 * n = 15,
 *
 * 返回:
 * [
 *     "1",
 *     "2",
 *     "Fizz",
 *     "4",
 *     "Buzz",
 *     "Fizz",
 *     "7",
 *     "8",
 *     "Fizz",
 *     "Buzz",
 *     "11",
 *     "Fizz",
 *     "13",
 *     "14",
 *     "FizzBuzz"
 * ]
 *
 *
 * @ProjectName: leetcode
 * @Package: com.linyaonan.leetcode.easy._412
 * @ClassName: FizzBuzz
 * @Author: linyaonan
 * @Date: 2019/12/27 11:47
 */
public class FizzBuzz {

    private static final String FIZZ = "Fizz";
    private static final String BUZZ = "Buzz";
    private static final String FIZZBUZZ = "FizzBuzz";

    public List<String> fizzBuzz(int n) {
        List<String> list = new ArrayList<>();
        if (n < 1) {
            return list;
        }

        for (int i = 1; i <= n; i++) {
            if (i % 15 == 0) {
                list.add(FIZZBUZZ);
            } else if (i % 5 == 0) {
                list.add(BUZZ);
            } else if (i % 3 == 0) {
                list.add(FIZZ);
            } else {
                list.add(String.valueOf(i));
            }
        }

        return list;
    }

}
